package main

import (
	"fmt"
	"reflect"
)

// 如何在运行时检查变量类型?

func _checkType(i interface{}) {
	switch v := i.(type) {
	case int:
		fmt.Printf("type int with value : %d \n", v)
	case string:
		fmt.Printf("type string with value : %s \n", v)
	case float64:
		fmt.Printf("type float64 with value : %f", v)
	default:
		fmt.Println("unKnow type")
	}
}

func _reflect(i interface{}) {
	t := reflect.TypeOf(i)
	v := reflect.ValueOf(i)

	fmt.Printf("Type:%s,Value:%v\n", t, v)
}

//func main() {
//	_checkType(42)
//	_checkType("test")
//	_checkType(3.14)
//	_checkType(true)
//
//	_reflect(42)
//	_reflect("test")
//	_reflect(3.14)
//	_reflect(true)
//}
